package Module.WandaView;

import Base.*;

import java.util.ArrayList;
import java.util.List;

/**
 * Created by Alain on 2016/3/9.
 */
@SuppressWarnings("unused")
public class ViewInternal extends TestBase {
    private static TestBase TB = new TestBase();
    private static DataFactory DF = new DataFactory();

    private String requestURL=null, response=null, requestBody=null,
                    sourceId    =   DF.getCellValue("WandaView", "sourceId"),
                    sourceName  =   DF.getCellValue("WandaView", "sourceName"),
                    digest      =   DF.getCellValue("WandaView", "digest"),
                    callbackUrl =   DF.getCellValue("WandaView", "callbackUrl");

    private ViewFile VF = new ViewFile();
    private MultipleViewFile VMF = new MultipleViewFile<ViewFile>();

    /*01.单个文件重转
    PUT https://bim.wanda.cn/view/internal/retransfer?sourceId={sourceId}&sourceName={sourceName}&digest={digest}&callbackUrl={callbackUrl}
    参数名      是否必选    类型    描述          实例值
    sourceId	是	        Long	文件ID	      12345678912
    sourceName	是	        string	文件名称	  WDGC-Q-SY-AR-F03-20160120.rvt
    digest  	是	        string	文件digest	  2431076b76434edr16037a05d862h00d
    callbackUrl	否	        string	回调地址      https://yun.glodon.com?sourceId={sourceId}&etag={etag}
                                                        &status={status}&thumbnail={thumbnail}&code={code}&message={message}
    callbackUrl --
    sourceId	是	        Long	文件ID
    etag	    是	        string	数据包主键
    status	    是	        Byte	转化状态：0-待转换，1-转换中，2-转换成功，3-转换失败
    thumbnail	是	        string	缩略图
    code        否	        string	错误码
    message	    否	        string	错误信息*/
    public String singleFileRetransfer(){
        requestURL = "/view/internal/retransfer?sourceId="+sourceId+"&sourceName="+sourceName+"&digest="+digest;
        if (!"".equals(callbackUrl)){
            requestURL = TB.getURL(requestURL) + "callbackUrl=" + callbackUrl;
        }

        //send request
        try {
            response = TB.apiResponse(requestURL, "PUT");
        } catch (Exception e) {

        }

        return  response;
    }

    /*02.单个文件转换
    PUT https://bim.wanda.cn/view/internal/transfer?sourceId={sourceId}&sourceName={sourceName}&digest={digest}&callbackUrl={callbackUrl}
    参数名      是否必选    类型    描述          实例值
    sourceId	是	        Long	文件ID	      12345678912
    sourceName	是	        string	文件名称	  WDGC-Q-SY-AR-F03-20160120.rvt
    digest  	是	        string	文件digest	  2431076b76434edr16037a05d862h00d
    callbackUrl	否	        string	回调地址      https://yun.glodon.com?sourceId={sourceId}&etag={etag}
                                                        &status={status}&thumbnail={thumbnail}&code={code}&message={message}
    callbackUrl --
    sourceId	是	        Long	文件ID
    etag	    是	        string	数据包主键
    status	    是	        Byte	转化状态：0-待转换，1-转换中，2-转换成功，3-转换失败
    thumbnail	是	        string	缩略图
    code        否	        string	错误码
    message	    否	        string	错误信息*/
    public String singleFileTransfer(){
        requestURL = "/view/internal/transfer?sourceId="+sourceId+"&sourceName="+sourceName+"&digest="+digest;
        if (!"".equals(callbackUrl)){
            requestURL = TB.getURL(requestURL) + "callbackUrl=" + callbackUrl;
        }

        //send request
        try {
            response = TB.apiResponse(requestURL, "PUT");
        } catch (Exception e) {

        }

        return  response;
    }

    /*03.多文件优化
    POST https://bim.wanda.cn/view/internal/optimize?sourceId={sourceId}&sourceName={sourceName}&callbackUrl={callbackUrl}
    参数名      是否必选    类型    描述          实例值
    sourceId	是	        Long	文件ID	      12345678912
    sourceName	是	        string	文件名称	  WDGC-Q-SY-AR-F03-20160120.rvt
    callbackUrl	否	        string	回调地址      https://yun.glodon.com?sourceId={sourceId}&etag={etag}
                                                        &status={status}&thumbnail={thumbnail}&code={code}&message={message}
    RequestBody --
    speciality	是	        string	所属专业
    fileId	    是	        string	文件ID
    fileName	是	        string	文件名称
    digest	    是	        string	文件摘要值
    etag	    是	        string  databagId,对应etag
    floor	    是	        string	所属楼层

    callbackUrl --
    sourceId	是	        Long	文件ID
    etag	    是	        string	数据包主键
    status	    是	        Byte	转化状态：0-待转换，1-转换中，2-转换成功，3-转换失败
    thumbnail	是	        string	缩略图
    code        否	        string	错误码
    message	    否	        string	错误信息*/
    public String multipleFile(){
        //initial parameters
        requestURL  =   "/view/internal/optimize?sourceId="+sourceId+"&sourceName="+sourceName;

        if (!"".equals(callbackUrl)){
            requestURL = TB.getURL(requestURL) + "callbackUrl=" + callbackUrl;
        }

        //initial request
        VF.setFileId("785840583893184");
        VF.setFileName("WDGC-Q-SY-AR-F04-RF.rvt");
        VF.setDigest("7b76e5b45925e301a49fd05263a07f4d");
        VF.seteTag("");
        VF.setFloor("F04~RF");
        VF.setSpeciality("AR");

        List<ViewFile> VFL = new ArrayList<ViewFile>();
        VFL.add(VF);

        VMF.setSpeciality("AR");
        VMF.setListFiles(VFL);
        VMF.setFiles();

        List<MultipleViewFile> listMultipleFile = new ArrayList<MultipleViewFile>();
        listMultipleFile.add(VMF);

        requestBody = JsonUtils.toJson(listMultipleFile);

        //send request
        try {
            response = TB.apiResponse(requestURL, "POST", requestBody);
        } catch (Exception e) {

        }

        return  response;
    }
}
